package com.dao;

import com.beans.Contacts;
import com.utils.HibernateUtils;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class ContactsDao {

    public ContactsDao() {

        super();
    }

    //Cette méthode sera utiliser pour ajouter un Contact pour répondre au Appel d'offre
    public void addContacts(Contacts contacts) {

        Session session = HibernateUtils.currentSession();

        Transaction tx = session.beginTransaction();

        session.save(contacts);
        tx.commit();

        HibernateUtils.closeSession();
    }

    //Cette méthode va nous permettre d'éffectuer des mis à jour au niveau des Contacts pour un Appel d'offre donné
    public void updateContacts(Contacts contacts) {

        Session session = HibernateUtils.currentSession();

        Transaction tx = session.beginTransaction();

        session.save(contacts);
        tx.commit();

        HibernateUtils.closeSession();
    }

    //Cette méthode nous permet de lister les Contacts que nous avons pour un Appel d'offre donné
    public List<Contacts> selectAllContacts() {
        Contacts contacts = new Contacts();
        Session session = HibernateUtils.currentSession();
        Query query = session.createQuery("from Contacts");
        List<Contacts> list = query.list();
        for (int i = 0; i < list.size(); i++) {
            contacts = list.get(i);
        }
        return list;
    }

    //Cette méthode permet de chercher les Contacts que nous avons pour un Appel d'offre donné
    public Contacts findContacts(String contactId) {

        Session session = HibernateUtils.currentSession();

        Query query = session.createQuery("from Contacts where cntId='" + contactId + "'");
        List<Contacts> listContacts = query.list();
        return listContacts.get(0);

    }

    //Cette méthode permet de suprimer les Contacts que nous avons pour un Appel d'offre donné
    public void deleteContacts(Contacts contacts) {

        Session session = HibernateUtils.currentSession();

        Transaction tx = session.beginTransaction();

        session.delete(contacts);

        tx.commit();
        HibernateUtils.closeSession();

    }
}
